package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import vista.VentanaGrupo;
import vista.VentanaIncluirGrupo;

import modelo.Colaborador;
import modelo.GrupoColaborativo;
import modelo.Laboratorio;

public class ControladorIncluirGrupo implements ActionListener{
	
	private VentanaIncluirGrupo vg;
	private Laboratorio lab;
	private GrupoColaborativo gc;

	
	public ControladorIncluirGrupo(Laboratorio lab, GrupoColaborativo gc) {

		this.lab = lab;
		this.gc = gc;
		vg = VentanaIncluirGrupo.getInstancia();
		vg.setVisible(true);
		//vg.setLocationRelativeTo(null);
		vg.setResizable(false);
		vg.agregarListener(this);
		vg.bloquearCampo();
		//vg.setTxtCodigoGrupo(generarCodigo());
		vg.setTxtCodigoGrupo(generarCodigo());
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getActionCommand().equalsIgnoreCase("Salir")){
			vg.dispose();
			}
		
		else if (e.getActionCommand().equalsIgnoreCase("Guardar")){
			
			if (vg.getTxtNombreGrupo().equalsIgnoreCase("")|| vg.getTxtcedResponsable().equalsIgnoreCase("")){
				vg.mostrarMensaje("ERROR, No dejar campos vacios");
				return;
			}
			guardarGrupo();
			vg.LimpiarCampos();
		}
		else if (e.getActionCommand().equalsIgnoreCase("Aceptar")){
			if (vg.getTxtNombreGrupo().equalsIgnoreCase("")|| vg.getTxtcedResponsable().equalsIgnoreCase("")){
				vg.mostrarMensaje("ERROR, No dejar campos vacios");
				return;
			}
			modificarGrupoC();
			vg.LimpiarCampos();
		}
	}
	
	// GENERAR CODIGO
	public String generarCodigo(){
		String cod;
		int a = lab.CargarListadoGrupo().size()+1;
		if(a < 9) {
			cod = "GP-0"+a;
			return cod;
		}
		cod = "GP-"+a;
		return cod;
	}

	
	//METODO BLOQUEO BOTON GUARDAR
	public void bloquearGuardar(boolean valor){
		vg.bloquearBontonGuardar(valor);
	}
	
	//METODO BLOQUEO BOTON ACEPTAR
	public void bloquearAceptar(boolean valor){
		vg.bloquearBontonAceptar(valor);
	}
	
	//METODO BLOQUEO TXT NOMBRE
	public void bloquearNombre(boolean valor){
		vg.bloquearNombre(valor);
	}
	//METODO PARA BLOQUEAR EL TXT CEDRESPONSABLE
	public void bloquearCedResponsable(boolean valor){
		vg.bloquearCedResponsable(valor);
	}
	
	public void modificarGrupoC(){
		
		GrupoColaborativo g = new GrupoColaborativo();
		{
			g.setCodigoGrupo(vg.getTxtCodigoGrupo());
			g.setNombreGrupo(vg.getTxtNombreGrupo());
			g.setColResponsable(vg.getTxtcedResponsable());
			g.setStatus("A");
		}
		lab.modificarGrupo(g);
		vg.mostrarMensaje("Datos Actualizados Satisfactoriamente");
		vg.LimpiarCampos();
	}

	
	//METODO GUARDAR GRUPOS
	public void guardarGrupo(){
	GrupoColaborativo g = new GrupoColaborativo( vg.getTxtNombreGrupo(), vg.getTxtcedResponsable(), "A");
	lab.guardarGrupo(g);
	vg.mostrarMensaje("Grupo Guardado de Manera Exitosa");
	}
	
}
